
/**
 * 
 * @param target 1.如果修饰的是【实例方法】的参数，target是类的【原型对象】 2.如果修饰的是【静态方法】的参数，target是【类】
 * @param propertyKey 参数所在的方法的名称
 * @param parameterIndex 参数所在函数参数列表中的索引
 */
function Demo(target:object,propertyKey:string,parameterIndex:number){
    console.log(target)
    console.log(propertyKey)
    console.log(parameterIndex)
    console.log('----------------------------')
}

class Person{
    constructor(public name:string){

    }
    speak(@Demo message1:any,message2:any){
        console.log(`${this.name}想说：${message1} ${message2}`)
    }
}